package com.imooc.ecommerce.filter;

import com.imooc.ecommerce.vo.LoginUserInfo;

/**
 * <p>使用 ThreadLocal 去单独存储每一个线程携带的 LoginUserInfo 信息
 * <p>要及时的清理我们保存到 ThreadLocal 中的用户信息:
 * <p>&emsp;&emsp;1. 保证没有资源泄露
 * <p>&emsp;&emsp;2. 保证线程在重用时, 不会出现数据混乱
 *
 * @author Yaxi.Zhang
 * @since 2022/11/11 14:45
 */
public class AccessContext {

    private static final ThreadLocal<LoginUserInfo> loginUserInfo = new ThreadLocal<>();

    public static LoginUserInfo getLoginUserInfo() {
        return loginUserInfo.get();
    }

    public static void setLoginUserInfo(LoginUserInfo loginUserInfo_) {
        loginUserInfo.set(loginUserInfo_);
    }

    public static void clearLoginUserInfo() {
        loginUserInfo.remove();
    }

}
